﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Core.Mvvm;
using Multiprocessing.Core.Algorithm;

namespace Client.App.Models
{
    public class AlgorithmFamily : NotifiedObject
    {
        #region Fields

        private string _name;
        private ObservableCollection<IAlgorithm> _algorithms;

        #endregion

        #region Properties

        public string Name
        {
            get { return _name; }
            set { this.SetProperty(ref _name, value, () => this.Name); }
        }

        public ObservableCollection<IAlgorithm> Algorithms
        {
            get { return _algorithms; }
            set { this.SetProperty(ref _algorithms, value, () => this.Algorithms); }
        }

        #endregion

        #region Constructors

        public AlgorithmFamily()
            : this(string.Empty)
        {
            
        }

        public AlgorithmFamily(string name)
        {
            _algorithms = new ObservableCollection<IAlgorithm>();
            _name = name;
        }

        #endregion
    }
}
